Distributed environments typically provide users with access to multiple applications, and should aim at enabling overall optimal performance. A distributed environment typically comprises one or more servers, residing in one or more data centers, one or more (typically in the hundreds or thousands) users, and a communication channel, typically a distributed landscape, such as a wide area network (WAN). Provisioning an application service in a distributed computing environment often requires multiple processing actions, which may be supplied by different entities, such as software units on different computers in multiple physical locations. Each processing action may require its own set of definitions or configuration settings or values, which is derived from the context of the processed transaction and the entity handling the transaction. The distribution generates a number of problems. Operators or integrators of the environment have to translate their view of each available application into one or more configuration setting for each processing action associated with the application. Second, the task of classifying the actions repeats for every action associated with every transaction, thus consuming access resources.
The above problems are amplified by common middleware infrastructure used: on one hand, middleware infrastructure such as a single application server provides multiple application services under what is traditionally observed as a single network or web service. On the other hand, a single application service may be comprised of an integrated set of different network services or web services potentially using different protocols. This raises further questions, such as how to utilize the application context for each single processing action; how to define a single end-to-end scheme for a specific application context; and how to monitor the performance or behavior of different processing actions under the application context.
Thus there is a need in the art for a method and apparatus that will enable context-aware transaction processing in distributed environments, so that different processing associated with transactions stemming from various applications can be performed in a uniform and efficient method throughout the distributed system, according to a uniform policy.